﻿using System;
using System.Collections.Generic;

namespace Fast.Extensions.DatabaseAccessor.EntityFrameworkCore
{
    /// <summary>
    /// 上下文所用的类型窗口
    /// </summary>
    [SkipScan]
    internal sealed class DbContextTypeContainer
    {
        /// <summary>
        /// 数据库实体类型集合
        /// </summary>
        internal List<Type> EntityTypes { get; set; } = new List<Type>();
        /// <summary>
        /// 无键实体类型集合
        /// </summary>
        internal List<Type> KeylessEntityTypes { get; set; } = new List<Type>();
        /// <summary>
        /// 实体配置类型集合
        /// </summary>
        internal List<Type> EntityTypeConfigureTypes { get; set; } = new List<Type>();
        /// <summary>
        /// 种子数据类型集合
        /// </summary>
        internal List<Type> EntitySeedDataTypes { get; set; } = new List<Type>();

        /// <summary>
        /// 实体类型构造过滤器实例
        /// </summary>
        internal List<IEntityTypeBuilderFilter> EntityTypeBuilderFilterInstances { get; set; } = new List<IEntityTypeBuilderFilter>();
    }
}
